package day17;


public class Demo5 implements Runnable{
    int sum=100;
    public void run() {
        String name=Thread.currentThread().getName();
        for (int i=0;i<100;i++){
            synchronized (Demo5.class){
                if (sum>0){
                    sum--;
                    System.out.println(name+"购买成功，剩余："+sum);
                    //让其他线程买，自己不能买了
                    //wait只能通过锁对象调用wait，否则会出错
                    //原因在于，释放对象锁，需要这个对象，要不然不知道释放哪把锁
                    try {
                        Demo5.class.notify();  //唤醒全部人
                        Demo5.class.wait(); //自己等待
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        Demo5 d=new Demo5();
        new Thread(d,"李四").start();
        new Thread(d,"张三").start();

    }
}
